home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 52811 / 52811.xpi / chrome / content / overlay.js < prev    next >
Encoding:
JavaScript  |  2009-08-23  |  3.4 KB  |  81 lines

  1. /*Overlay.js
  2. File per la gestione dell'add-on sul lato browser, permette di aprire 
  3. l'add-on quando necessario.
  4. */
  5.  
  6. //riferimento alla finestra aperta
  7. var my_window=null;
  8. //riferimento al contenuto del browser
  9. var appcontent=null;
  10. //riferimento al contenitore delle tab
  11. var container=null;
  12.  
  13. var OVERLAY = {
  14.  
  15.   onLoad: function() {
  16.     // initialization code
  17.     this.initialized = true;
  18.  
  19.     //se la pagina Φ caricata, gli associa l'evento onPageLoad
  20.     appcontent = document.getElementById("appcontent");   // browser
  21.     if(appcontent)
  22.       appcontent.addEventListener("DOMContentLoaded", OVERLAY.onPageLoad, true);
  23.     
  24.     //The following code allows you to detect when a new tab is selected in the browser  
  25.     container = gBrowser.tabContainer;
  26.     container.addEventListener("TabSelect", OVERLAY.onPageLoad, false);
  27.   },
  28.   
  29.   //esegue operazioni finali: forse non serve!?
  30.   onUnLoad: function() {//rimuove i listener sul onLoad
  31.     appcontent.removeEventListener("DOMContentLoaded", OVERLAY.onPageLoad, true);
  32.     container.removeEventListener("TabSelect", OVERLAY.onPageLoad, false);
  33.   },
  34.   
  35.   onPageLoad: function(aEvent) {
  36.      //estrae la lista di meta dalla pagina
  37.      meta=window.content.document.getElementsByTagName("meta");
  38.      
  39.      //necessario nel caso in cui mentre l'add-on Φ aperto, carico una nuova pagina
  40.      if(my_window && !my_window.closed){//la finestra Φ aperta ed esiste
  41.         window.removeEventListener("click", OVERLAY.onFocus, false);
  42.         my_window.close(); //chiude la finestra
  43.      }
  44.      
  45.      //scorre i meta estratti per verificare se pu≥ aprire la finestra dell'add-on
  46.      for(i=0;i<meta.length;i++){
  47.       if(meta[i].content=="AES" || meta[i].content=="BLOWFISH" || meta[i].content=="BLOWFISH/TXT" || meta[i].content=="BLOWFISH/HEX" || meta[i].content=="AES/TXT" || meta[i].content=="AES/HEX"){
  48.         OVERLAY.openNewWindow(); //apre la finestra
  49.         break;//di solito dovrebbe esserci un solo meta con queste caratteristiche
  50.       }
  51.     }
  52.   },
  53.  
  54.   openNewWindow: function() {
  55.     //la finestra da aprire Φ la crypt.xul, la apro come dialog per togliere la Maximize button
  56.     my_window=window.open("chrome://crypt/content/crypt.xul", "", "chrome,dialog");
  57.     //sposta la finestra aperta nel centro dello schermo
  58.     my_window.moveTo(Math.floor((window.outerWidth/2)-my_window.outerWidth)+window.screenX,Math.floor((window.outerHeight/2)-my_window.outerHeight)+window.screenY-50);
  59.     //associa l'evento onFocus alla finestra aperta, in modo che per tornare a navigare  si debba prima chiuderla
  60.     window.addEventListener("click", OVERLAY.onFocus, false);
  61.   },
  62.   
  63.   onFocus: function() {
  64.     //se la finestra esiste e non Φ chiusa
  65.     if(my_window && !my_window.closed)
  66.           my_window.focus();
  67.   },
  68.  
  69.   onMenuItemCommand: function() {//nel caso in cui clicco sul tasto nel menu o sullo short-cut
  70.     if(my_window==null || my_window.closed){//se l'add-on non Φ mai stato aperto o Φ chiuso
  71.       OVERLAY.openNewWindow();
  72.     }
  73.   }
  74. };
  75.  
  76. //serve per dirgli cosa fare ad ogni apertura di una nuova finestra di navigazione
  77. window.addEventListener("load", function(e) { OVERLAY.onLoad(e); window.removeEventListener("load", arguments.callee, false);}, false); 
  78.  
  79. //serve per dirgli cosa fare ad ogni chiusura di una finestra di navigazione
  80. window.addEventListener("unload", function(e) { OVERLAY.onUnLoad(e); window.removeEventListener("unload", arguments.callee, false);}, false); 
  81.